/*
 * @Author: ellery
 * @Date: 2022-08-20 20:14:35
 * @LastEditTime: 2022-09-05 17:58:33
 * @LastEditors: ellery
 * @Description: 代理和动态路由
 * @FilePath: \vue2-eslint-model\vue.config.js
 * Copyright (c) 2022 by ellery, All Rights Reserved.
 * 愿天堂没代码
 */
const { defineConfig } = require("@vue/cli-service");
// 动态路由配置
const path = require("path");
const VueAutoRouteWebpackPlugin = require("vue-auto-routes-webpack-plugin");
function resolve(_path) {
  return path.resolve(__dirname, _path);
}
module.exports = defineConfig({
  transpileDependencies: true,
  // lintOnSave: false,// 关闭eslint
  productionSourceMap: process.env.NODE_ENV !== "production",
  // publicPath: process.env.BASE_URL,
  devServer: {
    proxy: {
      "/api": {
        // 表示拦截以/api开头的请求路径
        target: "http://localhost:8080",
        changOrigin: true, // 是否开启跨域
        ws: true,
        secure: true,
        pathRewrite: {
          "^/api": "" // 重写api，把api变成空字符，因为我们真正请求的路径是没有api的
        }
      }
    }
  },
  chainWebpack(config) {
    config.plugin("VueAutoRouteWebpackPlugin").use(VueAutoRouteWebpackPlugin, [
      {
        entry: resolve("src/views/"), // 路由页面的入口路径，可以自定义路径
        output: resolve("src/router/routes.js"), // 配置文件输出路径
        rootComponent: "Login", // 根路由下的组件，也就是当路由为/时的页面
        indexComponent: "Index", // 多级路由时，需要为每级路由提供一个入口，用于放置<router-view />承载子路由
        useFileName: true // 是否使用文件名作为路由名称
        // ...// 更多的看文章里介绍
      }
    ]);
  }
});
